using System;
using System.Collections.Generic;

namespace VOL.Entity.DomainModels
{
    /// <summary>
    /// 大屏展示 - 概况统计
    /// </summary>
    public class DashboardOverviewDto
    {
        /// <summary>
        /// 单据数量
        /// </summary>
        public int OrderCount { get; set; }

        /// <summary>
        /// 入库数量
        /// </summary>
        public int InboundQuantity { get; set; }

        /// <summary>
        /// 入库金额
        /// </summary>
        public decimal InboundAmount { get; set; }

        /// <summary>
        /// 出库数量
        /// </summary>
        public int OutboundQuantity { get; set; }

        /// <summary>
        /// 出库金额
        /// </summary>
        public decimal OutboundAmount { get; set; }
    }

    /// <summary>
    /// 大屏展示 - 仓库统计项
    /// </summary>
    public class WarehouseStatDto
    {
        /// <summary>
        /// 仓库ID
        /// </summary>
        public long WarehouseId { get; set; }

        /// <summary>
        /// 仓库名称
        /// </summary>
        public string WarehouseName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }
    }

    /// <summary>
    /// 大屏展示 - 按日期统计项
    /// </summary>
    public class DailyStatDto
    {
        /// <summary>
        /// 日期
        /// </summary>
        public string Date { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }
    }

    /// <summary>
    /// 大屏展示 - 入库/出库趋势统计
    /// </summary>
    public class TrendStatDto
    {
        /// <summary>
        /// 日期列表
        /// </summary>
        public List<string> Dates { get; set; }

        /// <summary>
        /// 数量列表
        /// </summary>
        public List<int> Quantities { get; set; }

        /// <summary>
        /// 金额列表
        /// </summary>
        public List<decimal> Amounts { get; set; }

        /// <summary>
        /// 总数量
        /// </summary>
        public int TotalQuantity { get; set; }

        /// <summary>
        /// 总金额
        /// </summary>
        public decimal TotalAmount { get; set; }
    }

    /// <summary>
    /// 大屏展示 - 货品排名统计项
    /// </summary>
    public class GoodsRankDto
    {
        /// <summary>
        /// 排名
        /// </summary>
        public int Rank { get; set; }

        /// <summary>
        /// 货品ID
        /// </summary>
        public long GoodsId { get; set; }

        /// <summary>
        /// 货品名称
        /// </summary>
        public string GoodsName { get; set; }

        /// <summary>
        /// 数量
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 入库/出库次数
        /// </summary>
        public int Count { get; set; }
    }

    /// <summary>
    /// 大屏展示 - 完整数据
    /// </summary>
    public class DashboardDataDto
    {
        /// <summary>
        /// 今日概况
        /// </summary>
        public DashboardOverviewDto TodayOverview { get; set; }

        /// <summary>
        /// 昨日概况
        /// </summary>
        public DashboardOverviewDto YesterdayOverview { get; set; }

        /// <summary>
        /// 库存数量占比（按仓库）
        /// </summary>
        public List<WarehouseStatDto> InventoryQuantityByWarehouse { get; set; }

        /// <summary>
        /// 库存金额占比（按仓库）
        /// </summary>
        public List<WarehouseStatDto> InventoryAmountByWarehouse { get; set; }

        /// <summary>
        /// 总库存数量
        /// </summary>
        public int TotalInventoryQuantity { get; set; }

        /// <summary>
        /// 总库存金额
        /// </summary>
        public decimal TotalInventoryAmount { get; set; }
    }
}

